package org.power.bus.entity;

/**
 * @author mylovin
 * @date: 2022/2/22
 * @desc: 功能描述
 */
public class TrainParam {
    /**
     * 模型训练类型 LSTM或GRU
     */
    private String generatingModel;
    /**
     * 神经元层数
     */
    private int layerArgv;
    /**
     * 剪枝层数
     */
    private double dropoutArgv = 0.2;
    /**
     * Dense层，表示预测未来6小时温度
     */
    private int denseArgv = 6;
    /**
     * 损失函数
     */
    private String lossArgv = "mae";
    /**
     * 监控函数
     */
    private String monitorArgv = "val_loss";
    /**
     * patience
     */
    private int patienceArgv = 3;
    /**
     * factor
     */
    private double factorArgv = 0.5;
    /**
     * min_lr
     */
    private double min_lrArgv = 0.00001;
    /**
     * batch_size
     */
    private int batch_sizeArgv = 64;
    /**
     * epochs
     */
    private int epochsArgv = 100;

    public String getGeneratingModel() {
        return generatingModel;
    }

    public void setGeneratingModel(String generatingModel) {
        this.generatingModel = generatingModel;
    }

    public int getLayerArgv() {
        return layerArgv;
    }

    public void setLayerArgv(int layerArgv) {
        this.layerArgv = layerArgv;
    }

    public double getDropoutArgv() {
        return dropoutArgv;
    }

    public void setDropoutArgv(double dropoutArgv) {
        this.dropoutArgv = dropoutArgv;
    }

    public int getDenseArgv() {
        return denseArgv;
    }

    public void setDenseArgv(int denseArgv) {
        this.denseArgv = denseArgv;
    }

    public String getLossArgv() {
        return lossArgv;
    }

    public void setLossArgv(String lossArgv) {
        this.lossArgv = lossArgv;
    }

    public String getMonitorArgv() {
        return monitorArgv;
    }

    public void setMonitorArgv(String monitorArgv) {
        this.monitorArgv = monitorArgv;
    }

    public int getPatienceArgv() {
        return patienceArgv;
    }

    public void setPatienceArgv(int patienceArgv) {
        this.patienceArgv = patienceArgv;
    }

    public double getFactorArgv() {
        return factorArgv;
    }

    public void setFactorArgv(double factorArgv) {
        this.factorArgv = factorArgv;
    }

    public double getMin_lrArgv() {
        return min_lrArgv;
    }

    public void setMin_lrArgv(double min_lrArgv) {
        this.min_lrArgv = min_lrArgv;
    }

    public int getBatch_sizeArgv() {
        return batch_sizeArgv;
    }

    public void setBatch_sizeArgv(int batch_sizeArgv) {
        this.batch_sizeArgv = batch_sizeArgv;
    }

    public int getEpochsArgv() {
        return epochsArgv;
    }

    public void setEpochsArgv(int epochsArgv) {
        this.epochsArgv = epochsArgv;
    }

    @Override
    public String toString() {
        return "TrainParam{" +
                "generatingModel='" + generatingModel + '\'' +
                ", layerArgv=" + layerArgv +
                ", dropoutArgv=" + dropoutArgv +
                ", denseArgv=" + denseArgv +
                ", lossArgv='" + lossArgv + '\'' +
                ", monitorArgv='" + monitorArgv + '\'' +
                ", patienceArgv=" + patienceArgv +
                ", factorArgv=" + factorArgv +
                ", min_lrArgv=" + min_lrArgv +
                ", batch_sizeArgv=" + batch_sizeArgv +
                ", epochsArgv=" + epochsArgv +
                '}';
    }
}
